﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AGPR.Locadora.Model;

namespace AGPR.Locadora.Desktop
{
    public partial class Login : DraggableForm
    {
        public static Session sessao = Session.Instancia;

        #region ~Construtor

        public Login()
        {
            InitializeComponent();

            SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            this.BackColor = Color.Azure;
            this.TransparencyKey = Color.Azure;
        }

        #endregion

        #region logar

        /// <summary>
        /// Logar no Sistema
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void logar(object sender, EventArgs e)
        {
            if (this.txtUsuario.Text.Length == 0)
            {
                this.txtUsuario.Focus();
                return;
            }
            else if (this.txtSenha.Text.Length == 0)
            {
                this.txtSenha.Focus();
                return;
            }
            else if (this.autenticar())
            {
                // TODO: Checar Login
                // Program.sessao.set("logado", true);
                this.abrirSistema();
            }
        }

        #endregion

        #region abrirSistema

        /// <summary>
        /// Abre a janela Principal
        /// </summary>
        private void abrirSistema()
        {
            FPrincipal e = new FPrincipal();
            e.Visible = true;
            this.Visible = false;
        }

        #endregion

        #region autenticar

        /// <summary>
        /// Faz o login do usuário
        /// </summary>
        private bool autenticar()
        {
            Funcionario func = Funcionario.Login(this.txtUsuario.Text, this.txtSenha.Text);

            if (func != null)
            {
                sessao.set("funcionario", func);
                return true;
            }
            else
            {
                MessageBox.Show("Usuário ou senha incorretos! Por favor, tente novamente!", "Campos Obrigatórios");
                return false;
            }
        }

        #endregion

        #region btnFechar

        /// <summary>
        /// Ao clicar no botão fechar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnFechar_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        #endregion
    }
}
